<?php
// ------------------------------------------------------------------------
// |@Author       : Jarmin <edshop@qq.com>
// |@----------------------------------------------------------------------
// |@Date         : 2023-05-10 16:42:58
// |@----------------------------------------------------------------------
// |@LastEditTime : 2023-05-26 18:51:18
// |@----------------------------------------------------------------------
// |@LastEditors  : Jarmin <jarmin@ladmin.cn>
// |@----------------------------------------------------------------------
// |@Description  : 
// |@----------------------------------------------------------------------
// |@FilePath     : Dept.php
// |@----------------------------------------------------------------------
// |@Copyright (c) 2023 http://www.ladmin.cn   All rights reserved. 
// ------------------------------------------------------------------------
namespace app\api\controller;

use think\admin\Controller;
use think\admin\extend\DataExtend;

class Dept extends Controller
{
    /**
     * 获取部门信息列表（支持分页）
     * @return mixed 返回成功或失败的提示信息以及部门信息列表
     */
    public function list()
    {
        if ($this->request->isGet()) {
            // 查询部门信息
            $list = $this->modelDept->listDept($this->app->request->param());
            // 将查询到的部门信息数组转化为树形结构
            return $this->success(lang('dept.info_get_success'), DataExtend::arr2tree($list));
        }
    }

    /**
     * 添加或修改部门信息
     * @validate true
     * @sing true
     * @mixed validate true
     * @return mixed 返回成功或失败的提示信息以及部门信息
     */
    public function save()
    {
        if ($this->request->isPost()) {
            // 保存部门信息
            $result = $this->modelDept->saveDept($this->app->request->post());
            return $this->success(lang('user.edit_success'),$result);
        }
    }

    /**
     * 删除指定的部门信息
     * @validate true
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及删除的部门信息
    */
    public function remove()
    {
        if ($this->request->isDelete()) {
            // 删除部门信息
            $result = $this->modelDept->removeDept($this->app->request->delete());
            return $this->success(lang('dept.delete_success'),$result);
        }
    }
}